#ifndef _CRT_STR_H_
#define _CRT_STR_H_

#include <crt_core.hpp>

#ifdef __cplusplus
extern "C" {
#endif

char* s_strcpy(char* dst, size_t size, char const* src);

char* s_strncpy(char* dst, const char* src, size_t size);

char* s_strcat(char* dst, size_t size, const char* src);

size_t s_strlcatf(char* dest, size_t size, const char* fmt, ...);

char* s_strncat(char* front, const char* back, size_t count);

int s_strcmp(const char* src, const char* dst);

int s_stricmp(const char* dst, const char* src);

int s_strcasecmp(const char* dst, const char* src);

int s_strncmp(const char* first, const char* last, size_t count);

char* s_strchr(const char* string, int ch);

char* s_strrchr(const char* string, int ch);

size_t s_strspn(const char* string, const char* control);

size_t s_strcspn(const char* string, const char* control);

char* s_strpbrk(const char* string, const char* control);

char* s_strstr(const char* str1, const char* str2);

size_t s_strlen(const char* str);

size_t s_strnlen(const char* str, size_t maxlen);

char* s_strtok(char* str, char const* delim, char** context);

char* s_strset(char* string, int val);

char* s_strrev(char* string);

#ifdef __cplusplus
}
#endif

#endif
